Method and system for identifying and displaying shopping deals

ABSTRACT

A virtual layer is used to provide web page components to implement the deals display to perform the searching and deal display activities. By using the virtual layer approach of embodiments of the present invention, this allows the shopping deals to be placed on and overlaid with the web page from any host web page.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. application Ser. No. 13/109,879, filed on May 17, 2011, which are hereby incorporated by reference in its entirety. The present application is related to U.S. patent application Ser. No. 12/455,797, filed on Jun. 4, 2009, which are hereby incorporated by reference in its entirety.

FIELD

The present invention generally relates to techniques for identifying and displaying shopping deals on the World Wide Web.

BACKGROUND

In recent years, there has been an explosive growth of the internet as a forum for e-commerce by consumers. Many consumers now routinely shop and buy items at various merchant web sites on the internet. In fact, there are so many different shopping sites on the internet that it has become very difficult for a typical consumer to identify the best shopping sites and deals that are available and are of interest to that consumer.

To stimulate shopper interest, many merchants have created and distributed coupon codes that can be used by consumers at the merchant's e-commerce web site. Like normal coupons used by traditional buyers at a brick-and-mortar store, the electronic coupon code allows the buyer to save money when making a purchase at the shopping site. To use the coupon code, the coupon codes are typically entered into the appropriate fields of a merchant shopping site during the check-out process. By entering the coupon code, certain discounts or offers are then processed by the merchant site.

There is great interest in such coupon codes by normal consumers on the internet. The problem is that consumers want to use these coupon codes, but they often do not know if they exist or how to find them. The conventional approach to identifying the existence of such coupon codes is for the consumers to navigate to a specialized coupon search site, and to perform a search at that specialized coupon search site to identify the existence of available coupon codes. The problem is that many internet consumers often do not know about these coupon search sites. In addition, even the consumers that know about these coupon search sites must take the time and effort to search these sites. Moreover, many consumers may not know upfront what they want to buy in a given shopping session, and hence may not recognize and/or know upfront what to search for at the coupon site.

Therefore, there is a need for an improved approach to perform searching and display of internet shopping deals and coupons to consumers.

SUMMARY

According to some embodiments of the invention, disclosed is an improved approach for implementing searching of shopping deals and coupons on the internet. The user's internet activity is checked to identify deals that may be of interest to that user. In some embodiments, this check of the user's internet activity is from identifying the URL of the web page being viewed by the user or by searching the web page for information relating to possible deals. A virtual layer is used to provide web page components to implement the deals display to perform the searching and deal display activities. By using the virtual layer approach of embodiments of the present invention, this allows the shopping deals to be placed on and overlaid with the web page from any host web page.

Further details of aspects, objects, and advantages of the invention are described below in the detailed description, drawings, and claims. Both the foregoing general description and the following detailed description are exemplary and explanatory, and are not intended to be limiting as to the scope of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A illustrates an example browser window for presenting information from a shopping web site.

FIG. 1B illustrates the example browser window of FIG. 1A in which identified shopping deals are also displayed in conjunction with the shopping web site according to an embodiment of the invention.

FIG. 2 illustrates an example architecture for implementing searching and display of shopping deals according to an embodiment of the invention.

FIG. 3 illustrates a flowchart of an approach for searching and display of shopping deals according to an embodiment of the invention.

FIG. 4 illustrates a flowchart of an approach for searching for shopping deals at a server according to an embodiment of the invention.

FIG. 5 illustrates a flowchart of an approach for using virtual layer software to perform search and display of shopping deals according to an embodiment of the invention.

FIG. 6 provides an illustrative example of a shopping deals display according to an embodiment of the invention.

FIG. 7 illustrates a flowchart of an approach for automatically populating a shopping web site with a coupon code according to an embodiment of the invention.

FIG. 8 depicts a computerized system on which embodiments of the invention may be implemented.

DETAILED DESCRIPTION

Disclosed is an improved approach for implementing searching of shopping deals and coupons on the internet. The user's internet activity is checked to identify deals that may be of interest to that user. In some embodiments, this check of the user's internet activity is from identifying the URL of the web page being viewed by the user or by searching the web page for information relating to possible deals. A virtual layer is used to provide web page components to implement the deals display to perform the searching and deal display activities. By using the virtual layer approach of embodiments of the present invention, this allows the shopping deals to be placed on and overlaid with the web page from any host web page.

FIG. 1A illustrates an example of a web browser 102 that has been used by a consumer to navigate to a shopping web site (illustratively presented as “www.shopping_site.com” in the URL section 110 of the browser 102). As is typical of many internet shopping sites, a list of products and/or prices is displayed to the user. This display of products and/or prices may be displayed in response to a search performed by user. The products and/or prices may also be displayed automatically by the user navigating to certain pages within the domain of the shopping site. These items of shopping information are native to the host web page and are presented to the user based upon some sort of selection criteria by the owner or operator of the shopping site.

According to some embodiments of the invention, shopping deals, discount information, sales information, and/or coupon information (hereinafter collectively referred to as “deals”) may be presented to the user which relate in some way to the web page or contents of the web page being displayed to the user. These shopping deals may be displayed to the user even if the deal information being displayed is not native to the host web page currently being provided by the shopping site.

FIG. 1B shows an example of a the web browser 102 where the displayed web page 112 now includes and has been overlaid with an additional display area 120 for shopping deal information. In this example, the deals display area 120 is in the form of a drop down menu structure having one or more deals that are displayed. Section 122 of deals display 120 provides detailed information for a specific deal, which in this case includes an indication of a coupon code 126 that is applicable to provide a discount to purchases at the shopping site currently being displayed in the browser window 108.

The deals display 120 can be shown to the user even if the host web page 112 does not natively include that information or if the web site operator or owner is not the same entity as the provider of the deals display area 120. The deals display area 120 can be displayed within browser window 108 to display any suitable type of deals information, e.g., coupon information and coupon codes for products being sold through web site 112. This deals display are 120 can be provided whether or not the host web site natively provides functionality to display this information. As described in more detail below, virtual layer software is used to allow third party content (e.g., the deals display area 120 displaying deals and coupon information) to be displayed in conjunction with the host web page from the primary shopping site.

The advantage of this approach is that the deals display area 120 that is implemented using virtual layers can be displayed and overlaid onto the web page for any primary shopping site. This is in sharp contrast to conventional approaches that require the user to separately visit a specialized coupon web site and perform a directed search for deals/coupons that pertain to the shopping site.

To allow such deal display areas 120 to be displayed onto a primary shopping site according to some embodiments of the invention, a virtual layer plug-in is installed within web browser 102 to permit third party content to be displayed onto a primary site web page. The virtual layer plug-in is an application running on the client device that enables virtual editing of the appearance or functionality of an existing World Wide Web page by making the modifications on a virtual layer that is superimposed onto the web page. The virtual layer essentially allows a foreign entity or a user to include or enhance content that is utilized or displayed onto a web page, even if the web page itself does not natively provide such functionality to allow a third party to add or enhance content on the web page.

As described in more detail below, the virtual layer plug-in can be used to instantiate “extensions” onto the web page, including any scripts or other programs that may need to be executed on the web page to allow searching of secondary sites and display of additional search results within the browser window 108. For example, the virtual layer plug-in may be used to instantiate a javascript program to identify search terms on the primary shopping site and to send the search term for searching at a remote server to identify deals/coupons for display. The virtual layer plug-in may also be used to instantiate a Flash-based program to display image or video based search results from the secondary sites.

To illustrate, assume that the user has navigated to a shopping site having the URL “www.shopping_site.com”. The virtual layer extension can be configured to check section 110 of the browser 102 to identify the URL of the shopping site 112, and provide that identified URL as a search term to a deals database at a remote server. The server will send any identified deal information for that URL back to the browser 102 to be displayed within deals display area 120. The deals display area 120 may be implemented to display the deals/coupons in any suitable display format or display type.

FIG. 2 shows an architecture of a system 200 for identifying and displaying shopping deals according to some embodiments of the invention. System 200 may include one or more users at one or more user stations 204 at client 206 that access a web browser 202 to perform internet shopping. The users at user station 102 correspond to any individual, organization, or other entity that uses system 200 for performing some type of shopping or buying on the internet. The user stations 204 could be implemented using any suitable wired or wireless platform. For example, user station 204 may be implemented as desktop computer, laptop computer, wireless computing pad, cellular phone, or a web terminal.

The user station 204 interacts with a server 216 to identify and display deals to the user within the web browser 202. The server 216 is a network-accessible site that facilitates access to a database 214 containing a listing of available shopping deals pertaining to web sites accessed by a user at the user station 204. A search engine 212 at the server 216 will access the database 214 to search for any shopping deals that pertain or are relevant to the user's internet activity.

The information within the deals database 214 may be provided from any suitable source. For example, the information within deals database 214 could be obtained from an external deal consolidator 220, where the deal consolidator 220 is a specialized service or web site that identifies and tracks different shopping deals for a variety of different vendors, merchants, products, domains, and/or web sites. The deal consolidator 220 may maintain a deals listings database 218 to track the consolidated shopping deals. As needed or on an incremental basis, some or all of the data within the deals listing database 218 at the deals consolidator 220 may be transferred to the deals database 214 that is maintained by the server 216.

The operator of server 216 may also natively generate or provide the information within the deals database 214. For example, the operator of server 216 may perform his/her consolidation of shopping deals as input to the deals database 214, rather than seeking this information from an external deals consolidator 220. Alternatively, the operator of server 216 may obtain deals information from the deals consolidator 220, but supplement this information with its own natively generated shopping deals data. For example, the server 216 could collect user feedback about the deals and add that information to the deals database 214 in combination with data about those deals from deal consolidator 220. One practical reason for the server 216 to collect this type of feedback information from users is so that the feedback can be used by the search engine 212 to filter or sort the deals data from database 214 before sending that data for display to the web browser 202.

FIG. 3 shows a flowchart of actions taken at the user station to display the shopping deals information to the user. At 300, the user performs some sort of internet-related activity that may pertain to a shopping deal. For example, the user may use a web browser to navigate to a shopping site web page, where the web page includes or relates to a shopping deal that is being tracked by a deals database. In some contemplated use scenarios, the web page comprises a page provided by a merchant at an internet shopping site, where the web page identifies products that are being sold by the merchant. However, it is noted that the web page does not need to be generated by a dedicated shopping site run by a merchant to fall within the scope of some embodiments of the invention. Instead, the web page within the scope of embodiments of the invention can simply relate to any web page that corresponds to a deal being tracked by the deals database. A non-limiting example is a product review web site where the site only provides product reviews but which specifically does not sell any of the reviewed products. In this situation, the user may be very interested in knowing about product deals or coupons for the products being reviewed at that site, even if the user needs to navigate to another site (e.g., a merchant-run shopping site) to actually make use of the deal or coupon.

At 302, search criteria for deals/coupons are identified. The search criteria can be any criteria or search term that is used to search for shopping deals appropriate to the activity of the user. According to some embodiments, the search criteria are based upon the URL of the web page that is currently being viewed by the user. In this approach, the URL section of the web browser would be accessed to identify the current URL of the web page. In an alternate embodiment, the identified search criteria are based upon the contents of the page being viewed by the user. One approach for implementing this approach is to scrape the web page to identify key words that may be associated with specific products, merchants, deals, and/or coupons. Yet another possible embodiment is to allow the user to provide a search term, e.g., by typing the search term within a menu bar for the deals display.

At 304, the search criteria are sent to the server to perform a search of the available deals. Assuming that there are displayable search results, then at 306, displayable deal information is received from the server. At 308, that deal information is then displayed to the user. In some embodiments, the deal information is displayed in a drop down menu structure as shown in FIG. 1B, where the deals display portion is overlaid over the host web page, e.g., a host web page that does not natively display this shopping deals information.

FIG. 4 shows a flowchart of actions taken at the server to identify shopping deals to be displayed at the user station. At 400, the search criteria are received at the server from the user station. As noted above, the search criteria can be any criteria or search term that is used to search for deals appropriate to the activity of the user.

At 402, a search is performed within the deals database using the received search criteria. In the simple case, the search can be a search for specific words or keys within the deals database. Alternatively, associations may be created for the data within the deals database, so that a search can be performed using information that is associated with a deal. According to some embodiments, the deals within the deals database can be associated with: (a) a deals description; (b) coupon code; (c) expiration date; (d) URL/domain/merchant; (e) deal provider; (f) deal ratings or reviews; and/or (g) deal amounts or discount values. The received search criteria would be matched against these associations to identify the set of deals that should be displayed to the user.

For example, assume that the received search term is the current URL of the web page that is being viewed by the user. One or more shopping deals in the deals database may be associated with that URL or the domain associated with that URL. If so, then those deals associated with the URL from the received search criteria would be identified from the deals database. A typical use case scenario would be if the URL pertains to the domain of a specific merchant, and in which the associative searching would result in shopping deals corresponding to that specific merchant being identified and displayed to the user. As another example, the received search term may be the product name, product type, or vendor product identifier numbers. There may be shopping deals within the deals database that are associated with these types of search terms, and which would be identified using those associations. A use case scenario may be if the user is browsing at a shopping site for new mobile telephones, and the associative searching for a given product type (e.g., “mobile telephone”) would result in shopping deals from vendors that sell mobile telephones or mobile services.

It is possible that multiple deals are identified based upon the received search criteria. If so, then sorting and/or filtering of those deals may occur at 404. Any suitable type of sorting can be performed at 404, and the sorting may be performed using any suitable sorting or ordering criteria. For example, the deals can be sorted by the most recent deal, the greatest discount, and/or by the feedback ratings of customers. In addition, the displayed deals can be sorted based upon the deals that provide the greatest profit to the operator of the deals server, e.g., by identifying deals which provide the largest commission payment or percentage from the merchant to the server operator upon a purchase by the consumer. Filtering of the deals can also be performed using any suitable filtering criteria, e.g., filtering by deal expiration/upload date, discount levels/amounts, and/or by minimum feedback ratings.

At 406, the deal information is sent to the user station to be displayed in the web browser. In some embodiments, the deal information may be displayed within the user's web browser on a virtual layer over the host web page, where a virtual layer plug-in is installed at the user station to implement the virtual layers. A virtual layer server is used to provide the initial configurations for the virtual layer plug-in that allows the third party deals to be displayed at the client. The virtual layer software is configured to be superimposed onto web sites within the client's web browser, where the virtual layer include “extensions” that provide additional functionality or content to the built-in capabilities of a given web page.

As shown in FIG. 5, at 502, the approach begins with configuration for the extensions to perform deal display at the client. An identification is made of the parameters and settings for the virtual layer software that need to be configured to allow for deal display on web sites. For example, the different web sites may have fields and sections that need sot be scraped to identify search terms for searching of the deals. Therefore, the specific configurations that need to be implemented for the different web sites or domains are identified and built into the virtual layer software. The virtual layer plug-in extension is configured and/or modified as appropriate to implement the abilities discussed above. At 504, the virtual layer software is made available to be downloaded by users to the client computers to allow the searching and display of shopping deals. Thereafter, at 506, the deal information is processed and displayed on a native web page using the virtual layer software.

One approach for implementing the virtual layer is by using an enhanced XML schema (referred to herein as YLML or “Yontoo Layer Markup Language”), which contains executable programming tags, referenceable data tags, renderable UI tags and the like. Unlike HTML, which is a document markup language that is sometimes used as an application markup language simply because it is widely supported and the industry norm, YLML is a true application markup language that is different from HTML in that it has executable nodes and does not follow the same DOM structure that HTML does. YLML is also different from other XML languages in that it does not use code-behind. YLML does not require a separate file with logic source code, nor does it have imbedded logic using external languages. While other dynamic versions of XML require the use of code-behind or require the addition of external languages such as JavaScript and VBScript to be imbedded into script tags, YLML has native executable logic tags that eliminate the requirement for other languages to be imbedded into tags or used for code-behind.

An object model that works in conjunction with YLML is also employed, which is referred to herein as a YOM or Yontoo Object Model. A DOM can use only the information that exists in the document it is referencing to create a set of objects that are used to access the data within the HTML. The YOM on the other hand, is a single template that has an established structure that enables access to any information, data or content accessible through a computer system, including, but not restricted to the World Wide Web, databases, data stores, a client's computer or other content sources. This implies that unlike a DOM, which only creates objects for tags for content that exists in whole within the HTML document that it references, the YOM's established structure enables it to access specific content that exists on the World Wide Web, a database, a data store or any other location connected to a networked computer system without requiring content beyond the scope of exactly what is needed to be loaded. This enables the YOM to create objects within the model using a JIT (just in time) method, as opposed to creating the entirety of the model when the incoming file is parsed as is the case with the use of a DOM. One advantage of using the YOM over the DOM is that it gives access to a much broader range of content, including the World Wide Web, databases, data stores, a client's computer or other sources of content, according to an example of the present invention. For a DOM to provide this access, it would need to first load the entirety of the content that exists within these sources which is performance prohibitive.

The extensions for performing deal display are implemented using a combination of the YLML, the YOM and the virtual layer system to additional content and functionality to an existing web page. The extensions may be implemented using any suitable programming and/or scripting language. For example, a Flash-based approach maybe utilized to display the search results from deal search site. Of course, non-flash-based approaches may also be used to display the search results as well. According to some embodiments, the method for configuring a virtual layer includes aggregating objects corresponding to the plurality of layer extensions and corresponding to the URL using a layer markup language. The step of aggregating the objects is executed through a layer definition server unit adaptable to the layer markup language may also include a plurality of built-in logical tags for avoiding a need of writing scripts for enabling objects for executing events. The method for configuring an editable virtual layer in an internet browsing environment further includes loading a pre-rendered layer markup language module, returning the layer markup language to the virtual layer software sub-unit including a plurality of layer extensions present on the URL and having the virtual layer software sub-unit executing initialization routines in the layer markup language.

The rendering functionality within the virtual layer plug-in recognizes that it needs to add the drop down deal results window to the host web page, which is implemented in some embodiments by using Javascript to augment the DOM/YOM of the existing host web page. The correct location on the host web page is identified using the markup language items (XML or YLML) that was downloaded as part of the extension data, and used to inject the Javascript/Flash player at the appropriate location on the host web page.

The layer definition server may maintain a mapping structure to track the specific extensions to load for a given user and/or application. For example, the user may be associated with different applications that use the virtual layer plug-in, and the mappings identify which specific application extensions should be injected for that specific user. When appropriate identified, the extensions would be installed onto the virtual layer of the web page for the user.

Further details regarding an exemplary approach for implementing extension lists, virtual layer plug-ins, and virtual layers are described in co-pending U.S. Ser. No. 12/455,797, entitled “SYSTEM, METHOD AND APPARATUS FOR CREATING AND USING A VIRTUAL LAYER WITHIN A WEB BROWSING ENVIRONMENT”, filed on Jun. 8, 2009, which is hereby incorporated by reference in its entirety.

FIG. 6 shows an example of a deals display structure 600 according to some embodiments of the invention. Deal display structure 600 in this embodiment is formed as a drop down menu that displays one or more shopping deals within its display area. The shopping deal(s) are displayed in a deal display section 610 that includes information about a displayed shopping deal. For example, the displayed information may include information about the amount or type of discounts provided by the shopping deal in question. The displayed information also includes the display of a coupon code 620 that is used to obtain the stated shopping discount.

If the deal display section 610 does not have sufficient space to list all of the available shopping deals, then a control/interface element may be provided to allow user selection to display additional shopping deals. In the example of FIG. 6, button 612 is provided if the deal display section 610 is insufficient in size to display all of the shopping deals, and in which clicking of this button 612 by a user will cause additional deals to be displayed in the deal display section 610 of deals display structure 600.

The deals display structure 600 in some embodiments may include a search interface 602 to user users to perform directed searches of the deals database. Search interface 602 includes a field which allows the user to insert a search term. This search term can be sent to the server to perform the search of the deals database, with search results returned back to the client to be displayed in the deal display section 610.

In some embodiments, users are permitted to provide feedback or rankings for the displayed shopping deals. Controls 606 and 608 provide one example of an approach that can be taken to allow users to rank or rate deals. Here, 606 is a “thumbs up” button that allows the user to rate the deal with a positive score, while 608 is a “thumbs down” button that allows the user to provide a negative rating for the deal. These feedback ratings are sent to the server and consolidated with ratings from other users. One possible reason to obtain these ratings is to use the feedback ratings to rank or sort the deals that are displayed to users. The feedback ratings from multiple users for a particular deal can be used in a collective manner to obtain overall feedback ratings for the shopping deals. In addition, the feedback ratings for a particular user can be used to build a profile of the types of shopping deals that would be of interest to that particular user. While the feedback interfaces 606 and 608 of FIG. 6 are relatively simplistic in nature, it is clear that the scope of some embodiments of the invention may of encompass more complicated and granular rating and scoring interfaces that allows for detailed levels of review or scoring to be provided by users.

Coupon code 620 may be implemented as a clickable control interface that facilitates usage of the coupon code value for user purchases. According to a first embodiment, user selection of the interface element 620 results in the coupon code value being copied to a cache or memory area, so that the user can then “paste” that value into the appropriate field of a check-out web page of a shopping site so that the coupon code can be applied to obtain the designated discount.

In an alternate embodiment, user selection of the interface element 620 causes the coupon code to be auto-populated into the appropriate fields of the check-out page of the shopping site. FIG. 7 shows a flowchart of actions that may be taken in this type of embodiment. At 702, the user selects the displayed deal, e.g., by clicking upon the coupon code 620 for that shopping deal.

At 704, the browser will navigate to the appropriate URL associated with that shopping deal. To accomplish this, the interface element can be associated with a particular URL for purchasing a product or for applying the discount. For example, the check-out page of the shopping site can be associated with the shopping deal, so that selection or clicking of the coupon code causes navigation to the check-out page of the web site.

At 706, one or more values are auto-populated with appropriate values. For example, a coupon or discount portion of the check-out page can be automatically populated or injected with the coupon code. Other values may also be filled in at this point. For example, if the coupon code is associated with a specific product, product identifier, or price value, then that value can be used to auto-populate the appropriate fields in the check-out page. There are several possible ways to provide for auto-population of the check-put page fields. One way is perform the preliminary action of researching the different fields and positions of the check-out page for merchant web sites, and to configure the virtual layer software to insert the coupon codes and/or other values into those pre-recognized fields. Another possible approach is to scrape the shopping site page to search for recognized field identifiers, and to insert the code values are necessary into the recognized fields. One approach is to detect coupon code inputs on pages after coupon selection, and to then auto-inject these codes into the appropriate fields on the shopping site page.

Some embodiments may be implemented to display deals according to certain additional user-specific criteria. For example, the displayed deal could be based on the user's current location, e.g., which is identified by the user's IP address or by a location specified by the user. The displayed deal can be a “daily” deal, which lists current, up-to-date deals that are recent and/or relatively “hot” or recommended by other users.

Any or all of the deals may be printed by the user, according to some embodiments of the invention. In this approach, rather than being applied to a check-out page, the user controls the printing of the deal, e.g., to create/print a physical coupon that can be used in a brick-and-mortar store that is associated with the deal. The printable coupon can be identified using any suitable approach, e.g., as described above with respect to URL, searching, and/or based on location.

In addition, comparisons may be performed between different ones of the identified deals. For example, comparisons may be performed between multiple deals based on price, discount level, location, and/or best match. As before, the deals to be compared may be identified using any suitable approach, e.g., as described above with respect to URL, searching, and/or based on location.

In yet another embodiment, one or more links (e.g., a “Get a Coupon” link) may be added or associated with the coupon/deal code inputs, which directs the user to a deals site in a new tab/window. This direction of the user to a new tab/window may be performed with the search already made. Alternatively, selection of the link may cause a display of the user coupon/deal codes on the page, which may serve to increase the chance of a user selecting a coupon, e.g., if the deals menu is currently minimized.

In some embodiments of the invention, user selection of a coupon/deal from the deals menu causes a redirection to occur through a deal provider site, e.g., a redirection through the deal provider site to the user's previous site or to another shopping site. This action sets a cookie indicative of the redirection. Such tracking of redirections by users may be useful for many purposes. For example, there may be a financial arrangement to pay the provider of the deals menu for coupons/deals usage by users, and this type of tracking is useful for identifying the quantity of such users that take advantage of the coupons/deals. If the compensation is on a per-user basis, then this tracking information can be used to determine the amount of compensation to be paid by the deal provider for the users that have been directed to the coupons/deals.

Therefore, what has been described is an improved approach to perform searching and display of shopping deals on the internet. The shopping deals can be displayed over any host web page, even web pages that do not natively provide for this capability.

System Architecture Overview

FIG. 8 is a block diagram of an illustrative computing system 1400 suitable for implementing an embodiment of the deals display of the present invention. Computer system 1400 includes a bus 1406 or other communication mechanism for communicating information, which interconnects subsystems and devices, such as processor 1407, system memory 1408 (e.g., RAM), static storage device 1409 (e.g., ROM), disk drive 1410 (e.g., magnetic or optical), communication interface 1414 (e.g., modem or Ethernet card), display 1411 (e.g., CRT or LCD), input device 1412 (e.g., keyboard), and cursor control.

According to one embodiment of the invention, computer system 1400 performs specific operations by processor 1407 executing one or more sequences of one or more instructions contained in system memory 1408. Such instructions may be read into system memory 1408 from another computer readable/usable medium, such as static storage device 1409 or disk drive 1410. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and/or software. In one embodiment, the term “logic” shall mean any combination of software or hardware that is used to implement all or part of the invention.

The term “computer readable medium” or “computer usable medium” as used herein refers to any medium that participates in providing instructions to processor 1407 for execution. Such a medium may take many forms, including but not limited to, non-volatile media and volatile media. Non-volatile media includes, for example, optical or magnetic disks, such as disk drive 1410. Volatile media includes dynamic memory, such as system memory 1408.

Common forms of computer readable media includes, for example, floppy disk, flexible disk, hard disk, magnetic tape, any other magnetic medium, CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, RAM, PROM, EPROM, FLASH-EPROM, any other memory chip or cartridge, or any other medium from which a computer can read.

In an embodiment of the invention, execution of the sequences of instructions to practice the invention is performed by a single computer system 1400. According to other embodiments of the invention, two or more computer systems 1400 coupled by communication link 1415 (e.g., LAN, PTSN, or wireless network) may perform the sequence of instructions required to practice the invention in coordination with one another.

Computer system 1400 may transmit and receive messages, data, and instructions, including program, i.e., application code, through communication link 1415 and communication interface 1414. Received program code may be executed by processor 1407 as it is received, and/or stored in disk drive 1410, or other non-volatile storage for later execution. Computer system 1400 may communicate through a data interface 1433 to a database 1432 on an external storage device 1431.

In the foregoing specification, the invention has been described with reference to specific embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention. For example, the above-described process flows are described with reference to a particular ordering of process actions. However, the ordering of many of the described process actions may be changed without affecting the scope or operation of the invention. The specification and drawings are, accordingly, to be regarded in an illustrative rather than restrictive sense. 

1. A computer implemented method for identifying additional content corresponding to search criteria received from a user using a virtual layer plug-in to display additional content in a virtual layer overlaid over a host web page, comprising: receiving search criteria at a remote server, the search criteria corresponding to internet usage information associated with internet usage by a user at the virtual layer plug-in; identifying additional content relevant to the internet usage information received from the virtual layer plug-in, wherein the internet usage information pertains to a host web page that is displayed in a web browser to the user, and wherein the additional content is identified using the search criteria, and the search criteria is based on at least the contents of the host web page that is displayed in a web browser to the user and the additional content is received from the remote server using the search criteria; and sending the additional content to a client computer to display at least some of the additional content with the host web page using a virtual layer overlaid over the host web page displayed in the web browser to the user, at least some of the additional content being superimposed over the host web page in the same display window using the virtual layer overlaid over the host web page displayed in the web browser to the user and the additional content being displayed in a drop down menu structure, wherein the additional content comprises at least shopping deal information, the additional content is processed by the virtual layer plug-in to generate a visual representation, and the visual representation is clickable to cause an action to be taken corresponding to the additional content, and wherein the host web page does not natively provide functionality to enable a third party to overlay the additional content using the virtual layer.
 2. The method of claim 1 in which an extension is instantiated on the virtual layer with a corresponding user interface element in the drop down menu structure that enables a user to enter search criteria.
 3. The method of claim 1 in which the additional content comprises a coupon deal and the coupon deal includes a coupon code that is displayed to the user and the coupon code is auto-populated to a field in host web page by the virtual layer plug-in.
 4. The method of claim 1 in which an interface element is provided in the virtual layer to obtain user feedback for the shopping deal and the interface element is provided in the drop down menu structure, and wherein the user feedback from multiple users are collected and stored in a deals database to obtain overall user feedback ratings for the shopping deal.
 5. The method of claim 1 in which the additional content is identified using search criteria related to a URL associated with the host web page or extracted from the host web page to search a deals database.
 6. The method of claim 1 in which the additional content corresponds to a search association within a deals database, wherein the search association relates to a deal description, coupon code, expiration date, URL, domain, merchant, deal provider, ratings, deal amount, or discount values.
 7. The method of claim 1 in which multiple shopping deals are sorted or filtered for display, and wherein the user can specify filtering criteria comprising at least one of a deal expiration date, a deal upload date, a discount level, a discount amount, or feedback ratings.
 8. A computer program product embodied on a non-transitory computer usable medium, the non-transitory computer usable medium having stored thereon a sequence of instructions which, when executed by a processor causes the processor to execute a method for identifying additional content corresponding to search criteria received from a user using a virtual layer plug-in to display additional content in a virtual layer overlaid over a host web page, the method comprising: receiving search criteria at a remote server, the search criteria corresponding to internet usage information associated with internet usage by a user at the virtual layer plug-in; identifying additional content relevant to the internet usage information received from the virtual layer plug-in, wherein the internet usage information pertains to a host web page that is displayed in a web browser to the user, and wherein the additional content is identified using the search criteria, and the search criteria is based on at least the contents of the host web page that is displayed in a web browser to the user and the additional content is received from the remote server using the search criteria; and sending the additional content to a client computer to display at least some of the additional content with the host web page using a virtual layer overlaid over the host web page displayed in the web browser to the user, at least some of the additional content being superimposed over the host web page in the same display window using the virtual layer overlaid over the host web page displayed in the web browser to the user and the additional content being displayed in a drop down menu structure, wherein the additional content comprises at least shopping deal information, the additional content is processed by the virtual layer plug-in to generate a visual representation, and the visual representation is clickable to cause an action to be taken corresponding to the additional content, and wherein the host web page does not natively provide functionality to enable a third party to overlay the additional content using the virtual layer.
 9. The computer program product of claim 8 in which an extension is instantiated on the virtual layer with a corresponding user interface element in the drop down menu structure that enables a user to enter search criteria.
 10. The computer program product of claim 8 in which the additional content comprises a coupon deal and the coupon deal includes a coupon code that is displayed to the user and the coupon code is auto-populated to a field in host web page by the virtual layer plug-in.
 11. The computer program product of claim 8 in which an interface element is provided in the virtual layer to obtain user feedback for the shopping deal and the interface element is provided in the drop down menu structure, and wherein the user feedback from multiple users are collected and stored in a deals database to obtain overall user feedback ratings for the shopping deal.
 12. The computer program product of claim 8 in which the additional content is identified using search criteria related to a URL associated with the host web page or extracted from the host web page to search a deals database.
 13. The computer program product of claim 8 in which the additional content corresponds to a search association within a deals database, wherein the search association relates to a deal description, coupon code, expiration date, URL, domain, merchant, deal provider, ratings, deal amount, or discount values.
 14. The computer program product of claim 8 in which multiple shopping deals are sorted or filtered for display, and wherein the user can specify filtering criteria comprising at least one of deal expiration date, deal upload date, discount levels, discount amounts, or minimum feedback ratings.
 15. A system for identifying additional content corresponding to search criteria received from a user using a virtual layer plug-in to display additional content in a virtual layer overlaid over a host web page, comprising: a memory for storing data and instructions; and a processor that executes the instructions to enable actions, including: receiving search criteria at a remote server, the search criteria corresponding to internet usage information associated with internet usage by a user at the virtual layer plug-in; identifying additional content relevant to the internet usage information received from the virtual layer plug-in, wherein the internet usage information pertains to a host web page that is displayed in a web browser to the user, and wherein the additional content is identified using the search criteria, and the search criteria is based on at least the contents of the host web page that is displayed in a web browser to the user and the additional content is received from the remote server using the search criteria; and sending the additional content to a client computer to display at least some of the additional content with the host web page using a virtual layer overlaid over the host web page displayed in the web browser to the user, at least some of the additional content being superimposed over the host web page in the same display window using the virtual layer overlaid over the host web page displayed in the web browser to the user and the additional content being displayed in a drop down menu structure, wherein the additional content comprises at least shopping deal information, the additional content is processed by the virtual layer plug-in to generate a visual representation, and the visual representation is clickable to cause an action to be taken corresponding to the additional content, and wherein the host web page does not natively provide functionality to enable a third party to overlay the additional content using the virtual layer.
 16. The system of claim 15, wherein an extension is instantiated on the virtual layer with a corresponding user interface element in the drop down menu structure that enables a user to enter search criteria.
 17. The system of claim 15 in which the additional content comprises a coupon deal and the coupon deal includes a coupon code that is displayed to the user and the coupon code is auto-populated to a field in host web page by the virtual layer plug-in.
 18. The system of claim 15, wherein an interface element is provided in the virtual layer to obtain user feedback for the shopping deal and the interface element is provided in the drop down menu structure, and wherein the user feedback from multiple users are collected and stored in a deals database to obtain overall user feedback ratings for the shopping deal.
 19. The system of claim 15, in which the additional content is identified using search criteria related to a URL associated with the host web page or extracted from the host web page to search a deals database.
 20. The system of claim 15 in which the additional content corresponds to a search association within a deals database, wherein the search association relates to a deal description, coupon code, expiration date, URL, domain, merchant, deal provider, ratings, deal amount, or discount values. 